热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

同机|次序_广告业务系统之敏捷交付——“基于Docker容器同机部署”

篇首语:本文由编程笔记#小编为大家整理,主要介绍了广告业务系统之敏捷交付——“基于Docker容器同机部署”相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”相关的知识,希望对你有一定的参考价值。



文章目录


    • 广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”
      • 服务 Docker 构建及部署
        • 代码支持
        • 服务打包&构建
        • 服务部署





广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”


服务 Docker 构建及部署

在 ADX 系统中,全链路涉及 大大小小的微服务 将近 百个。
良好的服务构建和灵活、敏捷的部署能力,是保证广告业务快速交付价值的基石。

在实际生产中, ADX 系统服务为保障高可用、高性能 的同时,最大提升机器利用率。统一施行 以 Docker 容器为主的节点混部模式。


代码支持

值得一提的是,混部模式中,服务之间通信以容器为单位,走本地端口,无网络带宽限制、无网络资源问题、且大幅提升服务链路性能效益。这种部署模式已经在实际应用中得到了充分的肯定。

服务支持 Docker 容器技术的前提是,在实现代码中需要准备相关的部署文件。

.
├── build.sh //服务构建文件
├── docker-compose.yml //容器启动执行文件
└── Dockerfile //镜像构建文件

服务打包&构建

在完成服务功能代码之后,将最新代码上传至 Git Code 库。


CI/CD 平台,将会 Clone 业务代码,并依据其中的 build.sh 及 Dockerfile 分布进行构建 和 镜像打包工作。同时,会将完整的镜像及代码 Push 到专用的远程库之中,后续用于业务服务部署。


服务部署

服务部署前,会在团队分配的机器资源池中,依据现阶段各机器使用率及所属机房、高低配置,挑选合适的服务机器。

服务部署节点遵循 多机房部署、考量容灾、备份、高低同权重 …等等策略。其中重要的一点是,需要依据选出的节点合理的承接即将部署服务的流量规模,尤其需要评估出适量的冗余度,一般在 1.0 左右。【视各自服务场景而定】


CI/CD 平台将依据 代码中的 Docker-dompose.yml 文件进行相对的 部署逻辑。在部署顺序上,有着严格的次序:首先需要启动新服务,完成后再停止旧服务。

这样的次序可以保证服务功能迭代无损变更。

上述的“ 打包-构建-部署 ” 的流程可通过平台动态自主触发的形式进行落地。这样每次 Code 库存在更新,便自动触发流程,完成 “打包-构建”。最终服务功能开发完成,交付时间可压缩至秒级。

灵活、自主的构建、部署能力 使团队在日益竞争加剧的环境下,具备绝对的敏捷优势。



见后续文章!

推荐阅读:
暨 广告、推荐、搜索 三大顶级复杂业务之 “广告业务系统详叙”
广告业务系统 之 承前启后 —— “消息中心”
广告业务系统 之 数据中转站 —— “日志中心-实时服务监控”
广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”
广告业务系统 之 核心通道 —— “日志中心-s2s监测上报”
广告业务系统 之 辅助决策 —— “ AB 实验平台”
广告业务系统 之 框架沉淀 —— “数据消费型服务框架”
广告业务系统 之 智能保险丝 —— “智能流控”
广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”
广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】”



三行代码搞定 —— 反转链表…
Kafka 高吞吐、高性能核心技术及最佳应用场景…
HTTPS 如何保证数据传输安全 —— TLS 协议…
五分钟搭建基于 Prometheus + Grafana 实时监控系统…


推荐阅读
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
author-avatar
手机用户2602939233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有